#include <iostream>
#include <string>
using namespace std;

class array //有别于普通数组，数据必须相连不能跳过
{
private:
    int *ptr;       //容器
    int arrsize;    //已有的元素个数
    int maxsize;    //容器最大大小

public:
    array(void)
    {
        ptr = new int[10];
        maxsize = 10;
        arrsize = 0;
    }
    array(int size)
    {
        ptr = new int[size];
        arrsize = 0;
        maxsize = size;
    }
    ~array()
    {
        delete[] ptr;
    }

    /*
        函数功能：在数据末位添加数据
        参数列表：num：存入的值
        返回值：成功ture失败false，位置不在范围内
    */
    bool assignment(int num)
    {
        if(arrsize < maxsize)   //判断容器是否已满
        {
            ptr[arrsize] = num;
            arrsize++;
            return true;
        }
        return false;
    }
    /*
        函数功能：改变指定位置的数据
        参数列表：n：插入位置，num：要插入的数据
        返回值：成功ture失败false，位置不在范围内
    */
    bool assignment(int n, int num)
    {
        if (n >= 0 && n <= (size - 1))  //判断数据是否在已有元素的范围
        {
            ptr[n] = num;
            return true;
        }
        else
        {
            return false;
        }
    }

    int find_by_num(int num, int *np)   //查找指定值的位置
    {
        for(int i = 0;i < arrsize; i++)
        {
            if(ptr[i] == num)
            {
                np = ptr + i;
                return i;
            }
        }
    }
#if 0
     /*
        函数功能:查询指定下标的数据
        参数列表：n：插入位置，num：接收数据
        返回值：返回指定的值的地址
    */
    int * find_bu_subscript(int n) //查找指定下标
    {
        if(n >= 0 && n < (arrsize-1))
        {
            return (ptr+n);
        }else{
            return NULL;
        }
    }
#endif


};